/**
 * 
 */
package com.ineatconseil.yougo.client.ui.common;

import com.google.gwt.event.shared.EventBus;
import com.google.gwt.place.shared.PlaceController;
import com.ineatconseil.yougo.client.i18n.YougoLabelConstants;
import com.ineatconseil.yougo.client.i18n.YougoLabelMessages;
import com.ineatconseil.yougo.client.service.UserClientService;
import com.ineatconseil.yougo.client.ui.main.application.IApplicationView;
import com.ineatconseil.yougo.client.ui.main.application.header.IHeaderView;
import com.ineatconseil.yougo.client.ui.main.application.tabs.ITabsView;
import com.ineatconseil.yougo.client.ui.main.application.tabs.requestTypesMngt.IRequestTypesView;
import com.ineatconseil.yougo.client.ui.main.application.tabs.requestsMngt.IRequestsView;
import com.ineatconseil.yougo.client.ui.main.application.tabs.requestsValidationMngt.IRequestsValidationView;
import com.ineatconseil.yougo.client.ui.main.application.tabs.userTypesMngt.IUserTypesView;
import com.ineatconseil.yougo.client.ui.main.application.tabs.usersMngt.IUsersView;
import com.ineatconseil.yougo.client.ui.main.login.ILoginView;

/**
 * @author aelamrani
 */

public interface ClientFactory {
	
	/* Event Bus */
	EventBus getEventBus();

	/* Place Controller */
	PlaceController getPlaceController();

	/* Views */
	ILoginView getWelcomeView();

	IRequestsView getRequestsView();

	IApplicationView getApplicationView();
	
	IHeaderView getHeaderView();
	
	IUserTypesView getUserTypesView();
	
	ITabsView getTabsView();
	
	IUsersView getUsersView();
	
	IRequestsValidationView getRequestsValidationView();
	
	IRequestTypesView getRequestTypesView();
	
	/* I18N */
	YougoLabelConstants getLabelConstants();

	YougoLabelMessages getLabelMessages();

	/* Services */
	UserClientService getUserClientService();
	
}
